﻿using Microsoft.Xna.Framework;

namespace DKE_Kinect.Entwicklung.Grafik.ControlManaging
{
	/// <summary>
	/// Stellt die Komponenten in einem Container zur Verfügung.
	/// </summary>
	public interface IContainer
	{
		/// <summary>
		/// Gibt die Position des Container an.
		/// </summary>
		Point Location { get; }
		/// <summary>
		/// Gibt die Größe des Container an.
		/// </summary>
		Point Size { get; }
		/// <summary>
		/// Gibt die Grenzen des Container an oder legt diese fest.
		/// </summary>
		Rectangle Bounds { get; }

		/// <summary>
		/// Gibt die untergeordneten Komponenten von dieser zurück.
		/// </summary>
		ControlCollection Controls { get; }

		/// <summary>
		/// Gibt die relativen Grenzen gegenüber dem Bildschirm an.
		/// </summary>
		Rectangle? RelativeScreenBounds { get; }
		/// <summary>
		/// Gibt den auf dem Bildschirm sichtbaren Teil des Container zurück.
		/// </summary>
		Rectangle? VisibleScreenBounds { get; }

		/// <summary>
		/// Erzwingt, dass dieses sowie alle untergeordneten Elemente neu angeordnet werden.
		/// </summary>
		void Refresh ();
	}
}
